import {
    createReadStream,
    createWriteStream,
} from 'node:fs';

import { createGzip } from 'node:zlib';

import { pipeline } from 'node:stream'

// 从文件的 ReadStream，pipe 到 Gzip 转换流，然后 pipe 到文件的 WriteStream。
const gzip = createGzip();

const source = createReadStream(import.meta.dirname + '/data.txt');

const destination = createWriteStream('data2.txt.gz');

source.pipe(gzip).pipe(destination);
// 这里的多次 pipe 也可以用 stream 的 pipeline 的 api 简化

// pipeline(source, gzip, destination)